package com.itheima.d3_udp2;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/*
     目标：完成UDP通信快速入门：实现1发1收。
 */
public class Client {
    public static void main(String[] args) throws Exception {
        // 1、创建客户端对象
        try (final DatagramSocket ds = new DatagramSocket();) {

            final Scanner sc = new Scanner(System.in);

            while (true) {
                final String input = sc.nextLine();
                if ("exit".equals(input)) {
                    break;
                }
           /*
               2、创建数据包对象封装要发出去的数据（创建一个韭菜盘子）
               public DatagramPacket(byte buf[], int length, InetAddress address, int port)
               参数一：封装要发出去的数据。
               参数二：发送出去的数据大小（字节个数）
               参数三：服务端的IP地址（找到服务端主机）
               参数四：服务端程序的端口。
           */
                final InetAddress local = InetAddress.getByName("127.0.0.1");
                final byte[] sendMessage = input.getBytes(StandardCharsets.UTF_8);
                final DatagramPacket dp = new DatagramPacket(sendMessage, sendMessage.length, local, 9999);

                // 3、开始正式发送这个数据包的数据出去了
                ds.send(dp);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        // 4、释放资源
//        ds.close();
    }
}
